<?php

/**
 * @author Mukharev Maxim
 * @version 0.1a
 *
 * @desription
 *
 * Электронный магазин для MODx
 *
 * Класс для "хлебных крошек" электронного магазина
 */

class SBBreadcrumbs {
	
	/**
	 * @var SBCategory
	 */
	protected $oCategory;
	/**
	 * @var SBProduct
	 */
	protected $oProduct;
	protected $aBreadcrumbs;
	
	public function __construct() {
		global $modx;
		/**
		 * Если если мы не внутри каталога, то выходим
		 */
		//$modx->sbshop->oGeneralCategory,$modx->sbshop->oGeneralProduct
		if(!$modx->sbshop->insideCategory()) {
			return;
		}
		/**
		 * Получаем стартовый адрес
		 */
		$sStartUrl = $modx->sbshop->sBaseUrl;
		/**
		 * Устанавливаем суфикс
		 */
		$sSuffix = $modx->sbshop->config['url_suffix'];
		/**
		 * Название ссылки на домашнюю страницу
		 */
		$sHomeTitle = $modx->sbshop->config['breadcrumbs_home_title'];
		/**
		 * Инициализируем основной массив
		 */
		$this->aBreadcrumbs = array();
		/**
		 * Устанавливаем первое звено "хлебных крошек"
		 */
		$this->aBreadcrumbs[] = array(
			'title' => $sHomeTitle,
			'url' => $sStartUrl
		);
		/**
		 * Получаем путь категории
		 */
		$sPath = $modx->sbshop->oGeneralCategory->getAttribute('path');
		/**
		 * Разбиваем путь на набор идентификаторов
		 */
		$aIds = explode('.',$sPath);
		/**
		 * Если в пути есть документы
		 */
		if(count($aIds) > 1) {
			/**
			 * Делаем запрос на информацию о категориях
			 */
			$rs = $modx->db->select('category_title, category_url',$modx->getFullTableName('sbshop_categories'),'category_id in (' . implode(',',$aIds) . ')');
			/**
			 * Переводим результат в массив
			 */
			$aRaw = $modx->db->makeArray($rs);
			/**
			 * Обрабатываем каждую ссылку
			 */
			foreach ($aRaw as $aItem) {
				/**
				 * Записываем информацию о категории
				 */
				$this->aBreadcrumbs[] = array(
					'title' => $aItem['category_title'],
					'url' => $aItem['category_url']
				);
			}
			/**
			 * Если передан экземпляр товара, то добавляем информацию о нем
			 */
			if($modx->sbshop->oGeneralProduct->getAttribute('id') != null) {
				/**
				 * Записываем информацию о товаре
				 */
				$this->aBreadcrumbs[] = array(
					'title' => $modx->sbshop->oGeneralProduct->getAttribute('title'),
					'url' => $modx->sbshop->oGeneralProduct->getAttribute('url')
				);
			}
		}
	}
	
	/**
	 * Отдает список всех звеньев "хлебных крошек"
	 */
	public function getBreadcrumbs() {
		return $this->aBreadcrumbs;
	}
	
}

?>